const app = getApp();
Page({

    /**
     * 页面的初始数据
     */
    data: {
        selectedType: '',
        scrollTop: 0,
        weight: '45',
        type: {
            "build": [1.2, 2],
            "perform": [1.2, 1.4],
            "maintain": [0.8, 1]
        },
        proteinNeeds: [],
        porteinPowder: [],
        show: false
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        const query = wx.createSelectorQuery()
        query.select('#area1').boundingClientRect()
        query.selectViewport().scrollOffset()
        query.exec((res) => {
            this.setData({
                scrollTop: res[0].top
            })
        })
    },
    calc() {
        if (!this.data.selectedType) {
            wx.showToast({
                title: '请选择您的健身目标',
                icon: 'none'
            })
            return;
        }

        const arr = this.data.type[this.data.selectedType];
        this.data.proteinNeeds = arr.map(item => (item * this.data.weight).toFixed());
        this.setData({
            show: true,
            proteinNeeds: this.data.proteinNeeds
        })
        this.calcProteinPowder();
        wx.pageScrollTo({
            scrollTop: this.data.scrollTop,
            duration: 300,
        });
    },
    // 计算需要几勺蛋白粉
    // 蛋白质摄入量 / 24，
    // 如果结果是在X.0,就显示X勺，比如结果是2，就2勺。
    // 如果结果是在X.1-X.5之间，就显示X.0-X.5，比如是3.2，那就是3-3.5勺。
    // 如果结果是在X.6-X.9之间，就显示X.5-X+1，比如是9.7，那就是9.5-10勺。

    // 第一个数字：最低值/24，小数点后小于0.5，就去掉小数点；小数点后大于0.5，就写成0.5。
    // 第二个数字：最高值/24，小数点后小于0.5，就写成0.5；小数点后大于0.5，就‘四舍五入’。
    // 比如，2.2-3.4，写成2.0-3.5；
    // 2.7-2.8，写成2.5-3.0；
    // 11.4-18.9，写成11.0-19.0
    calcProteinPowder() {
        const arr = this.data.proteinNeeds.map(item => (item / 24).toFixed(1))
        const num1 = arr[0] - Math.floor(arr[0])
        const num2 = arr[1] - Math.floor(arr[1]);
        let newArr = [];
        if (num1 < 0.5) {
            newArr.push(Math.floor(arr[0]))
        } else {
            newArr.push(Math.floor(arr[0]) + 0.5)
        }

        if (num2 < 0.5) {
            newArr[1] = num2 === 0 ? Math.floor(arr[1]) : Math.floor(arr[1]) + 0.5
        } else {
            newArr.push(Math.round(arr[1]))
        }

        this.setData({
            porteinPowder: newArr
        })
    },
    choose(e) {
        const type = e.currentTarget.dataset.type;
        this.setData({
            selectedType: type
        })
    },
    getWeight(e) {
        this.setData({
            weight: e.detail.value
        })
    },

})